/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.navid.trafalgar.model;

import com.jme3.asset.AssetManager;
import com.jme3.input.InputManager;
import com.jme3.material.Material;
import com.jme3.math.Vector3f;
import com.jme3.scene.Node;
import com.jme3.scene.control.Control;
import com.navid.trafalgar.persistence.CandidateRecord;
import com.navid.trafalgar.persistence.StepRecord;

/**
 *
 * @author alberto
 */
public abstract class AShipModel extends TrafalgarNode implements Control {

    protected IContext context;
    
    public AShipModel(Vector3f lookAt, AssetManager assetManager){
        super(lookAt, assetManager);
    }

    public void setContext(IContext context) {
        this.context = context;
    }

    public abstract void registerInput(InputManager inputManager);

    public abstract float getSpeed();

    public abstract void setTransparent(boolean b);

    public abstract StepRecord getSnapshot();

    public abstract void updateFromRecord(StepRecord currentStepRecord);

    public abstract CandidateRecord getCandidateRecordInstance();
}
